package com.zhiwang.planet.di.component


import com.zhiwang.planet.di.ActivityScope
import com.zhiwang.planet.di.module.AccountModule
import com.zhiwang.planet.di.module.AutoDisposeModule
import com.zhiwang.planet.di.module.BindsModule
import com.zhiwang.planet.ui.WebViewActivity
import com.zhiwang.planet.ui.common.PhotoPreviewActivity
import com.zhiwang.planet.ui.entertain.EntertainFragmentV3
import com.zhiwang.planet.ui.jsmodule.MembershipModule
import com.zhiwang.planet.ui.jsmodule.ShareModule
import com.zhiwang.planet.ui.loginv2.*
import com.zhiwang.planet.ui.main.EntertainFragment
import com.zhiwang.planet.ui.main.GuideFragment
import com.zhiwang.planet.ui.main.v2.ListFragment
import com.zhiwang.planet.ui.main.v2.GameFragment
import com.zhiwang.planet.ui.main.v2.PokerFragment
import com.zhiwang.planet.ui.money.CommonListActivity
import com.zhiwang.planet.ui.my.*
import com.zhiwang.planet.ui.my.message.MessageActivity
import com.zhiwang.planet.ui.my.reward.VerifyCardActivity
import com.zhiwang.planet.ui.my.withdraw.AliBindDialog
import com.zhiwang.planet.ui.my.withdraw.BindAliAccountActivity
import com.zhiwang.planet.ui.my.withdraw.WithDrawRecordFragment
import com.zhiwang.planet.ui.my.withdraw.WxBindDialog
import dagger.Component

@ActivityScope
@Component(dependencies = [AppComponent::class],
        modules = [AccountModule::class, BindsModule::class, AutoDisposeModule::class])
interface UserComponent {

    fun inject(activity: BindAliAccountActivity)
    fun inject(activity: ModifyPasswordActivity)
    fun inject(activity: FeedBackActivity)
    fun inject(activity: RegisterActivity)
    fun inject(bindPayPasswordActivity: BindPayPasswordActivity)
    fun inject(activity: WithDrawRecordFragment)
    fun inject(activity: PhotoPreviewActivity)
    fun inject(activity: MyDetailActivity)
    fun inject(activity: VipRecordActivity)
    fun inject(activity: com.zhiwang.planet.sdk.AdListActivity)
    fun inject(activity: BindPhoneActivity)
    fun inject(activity: WxOldUserBindActivity)
    fun inject(fragment: EntertainFragment)

    //    fun inject(activity: TinyGameActivity)
    fun inject(dialog: AliBindDialog)
    fun inject(dialog: WxBindDialog)
    fun inject(activity: WebViewActivity)
    fun inject(shareModule: ShareModule)
    fun inject(membershipModule: MembershipModule)
    fun inject(activity: BonusTransformActivity)
    fun inject(activity: VerifyCardActivity)
    fun inject(messageActivity: MessageActivity)
    fun inject(activity: MyGameListActivity)
    fun inject(activity: FeedBack2Activity)
    fun inject(activity: ChangeImeiActivity)
    fun inject(activity: WithDrawActivity2)
    fun inject(activity: ChangeAvatarActivity)
    fun inject(fragment: MiniGameFragment)
    fun inject(activity: TradingMarketActivity)
    fun inject(fragment: MobileGameFragment)
    fun inject(activity: ChangeNickNameActivity)
    fun inject(fragment: GameFragment)
    fun inject(activity: LoginV2Activity)
    fun inject(activity: WxLoginActivity)
    fun inject(activity: RegisterV2Step2Activity)
    fun inject(activity: ChangeBindedPhoneActivity)
    fun inject(activity: RegisterV2Activity)
    fun inject(pokerFragment: PokerFragment)
    fun inject(fragment: ListFragment)
    fun inject(fragment: GuideFragment)
    fun inject(activity: CommonListActivity)
    fun inject(fragmentV3: EntertainFragmentV3)
    fun inject(activity: LoginFillSmsActivity)

}